home *** CD-ROM | disk | FTP | other *** search
/ Libris Britannia 4 / science library(b).zip / science library(b) / DJGPP / QDDVX102.ZIP / contrib / dvx / docs / qmake.doc < prev    next >
Text File  |  1993-07-15  |  6KB  |  156 lines

  1.  qmake - maintain, update, and regenerate groups of programs
  2.  
  3. Syntax
  4. ------
  5. qmake [-f makefile] [-hinpqrst] [macro=val ...] [target(s) ...]
  6.  
  7.  
  8. Description
  9. -----------
  10.  
  11. Qmake allows the developer to  maintain, update, and regenerate 
  12. groups of computer programs. The following is a brief description 
  13. of all options and some special names:
  14.  
  15. -f,  makefile Description file name. makefile is assumed to be 
  16. the name of a description file.
  17.  
  18. -h, Help. Prints syntax and valid parameters
  19.  
  20. -i, Ignore error codes returned by invoked commands. This mode is 
  21. entered if the fake target name .IGNORE appears in the 
  22. description file.
  23.  
  24. -n, No execute mode. Print commands, but do not execute them.
  25.  
  26. -p, Print out the complete set of macro definitions and target 
  27. descriptions.
  28.  
  29. -q, Question. The make command returns a zero or non-zero status 
  30. code depending on whether the target file is or is not
  31. up-to-date.
  32.  
  33. -r, Do not use the built-in rules.
  34.  
  35. -s, Silent mode. Do not print command lines before executing. 
  36. This mode is also entered if the fake target name .SILENT appears 
  37. in the description file.
  38.  
  39. -t, Touch the target files (causing them to be up- to-date) 
  40. rather than issue the usual commands.
  41.  
  42. .DEFAULT, If a file must be made but there are no explicit 
  43. commands or relevant built-in rules, the commands associated with 
  44. the name .DEFAULT are used if it exists.
  45.  
  46. .PRECIOUS, Dependents of this target will not be removed when 
  47. quit or interrupt are hit.
  48.  
  49. .SILENT, Same effect as the -s option.
  50.  
  51. .IGNORE, Same effect as the -i option.
  52.  
  53. Qmake executes commands in makefile to update one or more target 
  54. names. Name is typically a program. If no -f option is present 
  55. makefile is taken as the default. An environment variable called 
  56. QMAKE can be used to specify the makefile name, e.g. 
  57.  
  58. SET QMAKE=-f mscreal.
  59.  
  60. Qmake updates a target only if its dependents are newer than the 
  61. target. All prerequisite files of a target are added recursively 
  62. to the list of targets. makefile contains a sequence of entries 
  63. that specify dependencies. The first line of an entry is a blank-
  64. separated, non-null list of targets, then a :, then a (possibly 
  65. null) list of prerequisite files or dependencies. Text following 
  66. a ; and all following lines that begin with a tab are shell 
  67. commands to be executed to update the target. The first non-empty 
  68. line that does not begin with a tab or # begins a new dependency 
  69. or macro definition. Shell commands may be continued across lines 
  70. with the <backslash><new-line> sequence. Everything printed by 
  71. qmake (except the initial tab) is passed directly to the command 
  72. shell as is.
  73.  
  74. Sharp (#) and new-line surround comments.
  75.  
  76. Commands returning non-zero status normally terminate qmake. If 
  77. the -i option is present, or the entry .IGNORE: appears in a 
  78. makefile, or the initial character  sequence of the command 
  79. contains -, the error is ignored.
  80.  
  81.  Environment
  82.  -----------
  83.  
  84. The makefile processed by qmake can be specified through an 
  85. environment variable called qmake. This is of the form:
  86.  
  87.         SET QMAKE=-f filename
  88.  
  89. When qmake is invoked with no filename specified on the 
  90. commandline it checks for an environment variable. If this 
  91. variable exists, the file specified is used as the input file for 
  92. qmake.
  93.  
  94.  Include Files
  95.  -------------
  96.  
  97. If the string include appears as the first seven letters of a 
  98. line in a makefile, and is followed by a blank or a tab, the rest 
  99. of the line is assumed to be a filename and will be read by the 
  100. current invocation, after substituting for any macros.
  101.  
  102.  Macros
  103.  ------
  104.  
  105. Entries of the form string1 = string2 are macro definitions. 
  106. string2 is defined as all characters up to a comment character or 
  107. an unescaped new-line. Subsequent appearances of 
  108. $(string1[:subst1=[subst2]]) are replaced by string2. The 
  109. parentheses are optional if a single character macro name is used 
  110. and there is no substitute sequence. The optional :subst1=subst2 
  111. is a substitute sequence. If it is specified, all non-overlapping 
  112. occurrences of subst1 in the named macro are replaced by subst2. 
  113. Strings (for the purposes of this type of substitution) are 
  114. delimited by blanks, tabs, new-line characters, and beginnings of 
  115. lines.
  116.  
  117.  Internal Macros
  118.  ---------------
  119.  
  120. There are six internally maintained macros that are useful for 
  121. writing rules for building targets.
  122.  
  123. $*. The macro $* stands for the filename part of the current 
  124. dependent with the suffix deleted. It is evaluated only for 
  125. inference rules.
  126.  
  127. $@. The $@ macro stands for the full target name of the current 
  128. target.  It is evaluated only for explicitly named dependencies.
  129.  
  130. .DEFAULT rule. It is the module that is out-of-date with respect 
  131. to the target (i.e., the ``manufactured'' dependent file name). 
  132. Thus, in the .c.obj rule, the 
  133.  
  134.      .c.obj: 
  135.      cl -c $*.c
  136.  
  137.      or:
  138.  
  139.      .c.obj: 
  140.      cl -c $
  141.  
  142. $?. The $? macro is evaluated when explicit rules from the 
  143. makefile are evaluated. It is the list of prerequisites that are 
  144. out-of-date with respect to the target; essentially, those 
  145. modules which must be rebuilt.
  146.  
  147. ~. The ~ macro stands for your the HOME directory. It is 
  148. evaluated to the environment variable HOME. If it is not set and 
  149. your are in DESQview/X it is evaluated to the DESQview/X 
  150. directory (e.g. c:\dvx).
  151.  
  152. ($). The ($) macro will pick-up any environment variable. (e.g. 
  153. ($HOME) is equivelent to ~ and ($COMPILER_PATH) would probably 
  154. become c:\djgpp\bin.
  155.  
  156.